package teste;
import java.io.File;

import br.unisul.redeNeural.Configuracao;
import br.unisul.redeNeural.ParTreino;
import br.unisul.redeNeural.RedeNeural;
import br.unisul.redeNeural.RedeNeuralException;
import br.unisul.redeNeural.RegraHebb;
import br.unisul.util.Ferramentas;
import br.unisul.util.LeituraArquivo;


public class TesteLetrasHebb {

	
	static LeituraArquivo  ler = new LeituraArquivo();
	
	public static void main(String[] args) {
		Configuracao c = new Configuracao(63, 15);
		c.setSuportaVies(true);

		ParTreino p = new ParTreino(c);
		inicializar(p);

		RedeNeural n = new RegraHebb(c);
		try {
			n.treinar(p);
		} catch (RedeNeuralException e1) {
			e1.printStackTrace();
		}

		for (int i = 0; i < p.getQuantidade(); i++) {
			try {
				System.out.println(ler.toString(n.verificarSaidas(p.getEntrada(i)), 3));
			} catch (RedeNeuralException e) {
				e.printStackTrace();
			}
		}
		try {
			System.out.println(Ferramentas.verificarSaida(n.verificarSaidas(p.getEntradas()), p.getSaidas()));
		} catch (RedeNeuralException e) {
			e.printStackTrace();
		}
	}
	

	private static void inicializar(ParTreino parTreino) {
		String local = "arquivos\\file";
		String extensao = ".txt";
		double s[][] = new double[3][63];
		for (int i = 0; i < s.length; i++) {
			ler.setFile(new File(local +(21+i)+extensao));
			s[i] = ler.toArray(9, 7);
		}
		String min = "abc";

		double t[][] =new double[3][15];
		for (int i = 0; i < t.length; i++) {
			ler.setFile(new File(local +(21+i)+min.charAt(i)+extensao));
			t[i] = ler.toArray(5, 3);
		}
		for (int i = 0; i < t.length; i++) {
			parTreino.adicionaPar(s[i], t[i]);
		}
	}

}
